洛谷题解洛谷题解题解:P10265 [GESP样题 七级] 迷宫统计
xyx404
思路:
首先看题,让我们求迷宫 m 可以直接到达其他的迷宫有多少个,有多少迷宫可以直接到达 m 号迷宫,和这些迷宫的总和。
先看迷宫 m 可以直接到达其他的迷宫,是什么意思呢?
其实就是让我们看当历遍的迷宫是 m 时有多少个为真。
由此得出代码:
for(int i=1;i<=n;i++){ if(jz[m][i]==1){ sum1++; } }
|
然后我们看多少迷宫可以直接到达 m 号迷宫,这又是什么意思呢?
其实就是查看有多少个迷宫的 m 也就是 jz[i][m] 为真。
由此得出代码:
for(int i=1;i<=n;i++){ if(jz[i][m]==1)sumzj++; }
|
让我们看一下这两份代码循环的条件是不是相同的?
是对吧,由此合并两份代码:
for(int i=1;i<=n;i++){ if(jz[m][i]==1){ sum1++; } if(jz[i][m]==1)sumzj++; }
|
最后看这些迷宫的总和,没有坑直接输出就行。
完整代码
#include<bits/stdc++.h> using namespace std; bool jz[1001][1001]; long long sumzj; long long sum1; int main(){ int n,m; cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>jz[i][j]; } } for(int i=1;i<=n;i++){ if(jz[m][i]==1){ sum1++; } if(jz[i][m]==1)sumzj++; } cout<<sum1<<" "<<sumzj<<" "<<sum1+sumzj; return 0; }
|